public class test05 {
    class Solution {
        public int change(int amount, int[] coins) {
            //01背包：选和不选的问题【背包倒序遍历】
            //完全背包：不选和选几个的问题【背包正序遍历】
            //本题使用完全背包
            int[] dp = new int[amount+1];
            dp[0] = 1;
            //组合：外物品，内背包
            //完全背包：正序
            for(int i = 0;i<coins.length;i++){
                for(int j = coins[i];j<=amount;j++){
                    dp[j] += dp[j-coins[i]];
                }
            }
            return dp[amount];
        }
    }
}
